const Koa = require('koa') // 基础web框架
const serve = require('koa-static') // 静态文件
const views = require('koa-views') // 模板引擎
const cors = require('koa2-cors'); // 跨域
const koaBody = require('koa-body') // 解析http上传参数
const https = require('https');//node内置https server
const fs = require('fs')

// 引入mongodb数据库
require('./db/index')

const app = new Koa()

app.use(cors())

app.use(koaBody({
  multipart: true,
  formidable: {
    maxFileSize: 1000 * 1024 * 1024 // 设置上传文件大小最大限制，默认2M
  },
  jsonLimit: "20mb",
  textLimit: "20mb",
  // enableTypes: ['json', 'form', 'text']
}))

// 引入静态资源管理
app.use(serve(__dirname + "/static"))

// 引入模板引擎
app.use(views(__dirname + '/views'))

const router = require('./routes/index')

// 引入路由管理
app.use(router.routes())
app.use(router.allowedMethods())

app.listen(80)

// 配置https
var options = {
  key: fs.readFileSync('./ssl/zhs.liaoxiaohei.online.key'),  //私钥文件路径
  cert: fs.readFileSync('./ssl/zhs.liaoxiaohei.online_bundle.pem')  //证书文件路径
};
https.createServer(options, app.callback()).listen(443, () => {
  console.log(`server running success at 443`)
});